home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / boot / initrd.img-2.6.28-15-generic / initrd.img-2.6 / scripts / casper-bottom / 30accessibility < prev    next >
Encoding:
Text File  |  2009-10-12  |  9.4 KB  |  171 lines

  1. #!/bin/sh
  2. # If you change this, please also change the copy in ubiquity-hooks/30accessibility.
  3.  
  4. PREREQ=""
  5. DESCRIPTION="Configuring accessibility options..."
  6.  
  7. . /scripts/casper-functions
  8.  
  9. prereqs()
  10. {
  11.        echo "$PREREQ"
  12. }
  13.  
  14. case $1 in
  15. # get pre-requisites
  16. prereqs)
  17.        prereqs
  18.        exit 0
  19.        ;;
  20. esac
  21.  
  22. log_begin_msg "$DESCRIPTION"
  23.  
  24. gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""
  25.  
  26. gct() {
  27.     if [ "$gconf_version" ]; then
  28.         chroot /root sudo -u "$USERNAME" gconftool-2 "$@"
  29.     fi
  30. }
  31.  
  32. kderc_addtoprefixes() {
  33.     if [ -e "/root/etc/kde4rc" ]; then
  34.         sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /root/etc/kde4rc
  35.     fi
  36. }
  37.  
  38. # Code to remove an applet from the default panel setup
  39. # This is rather hacky, but I can't think of a one or two line regular
  40. # expression to do this any more efficiently. Patches welcome.
  41. # In addition, setting these via gconf also doesn't work for some reason.
  42. remove_applet()
  43. {
  44.     local line_no prior_line next_line
  45.  
  46.     line_no=$(grep -n "<string>$1</string>" /root/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)
  47.     prior_line=$((line_no-1))
  48.     next_line=$((line_no+1))
  49.     sed -i -n "${prior_line},${next_line}!p" /root/usr/share/gconf/defaults/05_panel-default-setup.entries
  50.     chroot /root update-gconf-defaults
  51. }
  52.  
  53. for x in $(cat /proc/cmdline); do
  54.                 case $x in
  55.                         # Lesser Visual Impairment
  56.                         access=v1)
  57.                         gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
  58.                         gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
  59.                         gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
  60.                         gct -s -t string /desktop/gnome/interface/font_name "sans 18"
  61.                         gct -s -t string /apps/metacity/general/theme Atlanta
  62.                         gct -s -t string /desktop/gnome/background/picture_filename ""
  63.                         gct -s -t string /desktop/gnome/background/picture_options none
  64.                         gct -s -t string /desktop/gnome/background/primary_color \#666666
  65.                         gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
  66.                         gct -s -t string /desktop/gnome/background/color_shading_type solid
  67.                         gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
  68.                         gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
  69.  
  70.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
  71.                         if [ -d /root/usr/share/xubuntu-default-settings/accessibility ]; then
  72.                             cp -a /root/usr/share/xubuntu-default-settings/accessibility/* /root/etc/xdg/
  73.                         fi
  74.                         ;;
  75.                         # Moderate Visual Impairment
  76.                         access=v2)
  77.                         gct -s -t bool /desktop/gnome/interface/accessibility true
  78.                         gct -s -t bool /desktop/gnome/applications/at/visual/startup true
  79.                         gct -s -t string /desktop/gnome/applications/at/visual/exec orca
  80.             if [ -x /root/usr/bin/orca ]; then
  81.                 mkdir -p /root/home/$USERNAME/.orca
  82.                 echo "import orca.settings" >> /root/home/$USERNAME/.orca/user-settings.py
  83.                 echo "orca.settings.enableSpeech = False" >> /root/home/$USERNAME/.orca/user-settings.py
  84.                 echo "orca.settings.enableMagnifier = True" >> /root/home/$USERNAME/.orca/user-settings.py
  85.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
  86.             fi
  87.                         gct -s -t bool /apps/gksu/disable-grab true
  88.                         gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
  89.                         sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
  90.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
  91.                         ;;
  92.                         # Blindness
  93.                         access=v3)
  94.                         gct -s -t bool /desktop/gnome/interface/accessibility true
  95.                         gct -s -t bool /apps/gksu/disable-grab true
  96.                         gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
  97.                         gct -s -t bool /desktop/gnome/applications/at/visual/startup true
  98.                         gct -s -t string /desktop/gnome/applications/at/visual/exec orca
  99.                         remove_applet fast_user_switch
  100.             if [ -x /root/usr/bin/pulse-session ]; then
  101.                 touch /root/home/$USERNAME/.pulse_a11y_nostart
  102.                 chroot /root chown $USERNAME.$USERNAME /home/$USERNAME/.pulse_a11y_nostart
  103.                 mkdir -p /root/home/$USERNAME/.pulse
  104.                 echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
  105.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
  106.             fi
  107.                         sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
  108.             if [ -x /root/usr/bin/orca ]; then
  109.                 mkdir -p /root/home/$USERNAME/.orca
  110.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
  111.             fi
  112.                         ;;
  113.                         # Braille
  114.                         braille=ask)
  115.                         gct -s -t bool /desktop/gnome/interface/accessibility true
  116.                         gct -s -t bool /desktop/gnome/applications/at/visual/startup true
  117.                         gct -s -t string /desktop/gnome/applications/at/visual/exec orca
  118.             if [ -x /root/usr/bin/orca ]; then
  119.                 mkdir -p /root/home/$USERNAME/.orca
  120.                 echo "import orca.settings" >> /root/home/$USERNAME/.orca/user-settings.py
  121.                 echo "orca.settings.enableSpeech = False" >> /root/home/$USERNAME/.orca/user-settings.py
  122.                 echo "orca.settings.enableBraille = True" >> /root/home/$USERNAME/.orca/user-settings.py
  123.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
  124.             fi
  125.                         gct -s -t bool /apps/gksu/disable-grab true
  126.                         gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
  127.                         remove_applet fast_user_switch
  128.                         sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
  129.             if [ -x /root/usr/bin/pulse-session ]; then
  130.                 touch /root/home/$USERNAME/.pulse_a11y_nostart
  131.                 chroot /root chown $USERNAME.$USERNAME /home/$USERNAME/.pulse_a11y_nostart
  132.                 mkdir -p /root/home/$USERNAME/.pulse
  133.                 echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
  134.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
  135.             fi
  136.                         ;;
  137.                         # Minor Motor Difficulties
  138.                         access=m1)
  139.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
  140.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
  141.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
  142.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
  143.                         gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
  144.                         gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
  145.                         gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
  146.                         gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
  147.                         gct -s -t bool /apps/gksu/disable-grab true
  148.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
  149.                         if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
  150.                             sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
  151.                         fi 
  152.                         ;;
  153.                         # Motor Difficulties - pointing devices
  154.                         access=m2)
  155.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
  156.             gct -s -t bool /desktop/gnome/interface/accessibility true
  157.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
  158.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
  159.                         gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
  160.                         gct -s -t bool /desktop/gnome/applications/at/mobility/startup true
  161.                         gct -s -t string /desktop/gnome/applications/at/mobility/exec onboard
  162.  
  163.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
  164.                         if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
  165.                             sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
  166.                         fi 
  167.                         ;;
  168.         esac
  169. done
  170. log_end_msg
  171.